From 9c890f83d144c83163744d3e41cfad0d7596386e Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Sat, 10 Nov 2007 23:19:30 +0000 Subject: [PATCH] Optimized lookup by adding an inline version of babl_db_each specially for * babl/babl-db.c: (babl_db_each_inline), (babl_db_exist): Optimized lookup by adding an inline version of babl_db_each specially for babl_db_exist. svn path=/trunk/; revision=246 --- ChangeLog | 6 ++++++ babl/babl-db.c | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 7f55eb0..8a9cee6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-11-10 Øyvind Kolås + + * babl/babl-db.c: (babl_db_each_inline), (babl_db_exist): Optimized + lookup by adding an inline version of babl_db_each specially for + babl_db_exist. + 2007-11-10 Øyvind Kolås Do not accept BABL_FISH_REFERENCE as a valid result when fishing for diff --git a/babl/babl-db.c b/babl/babl-db.c index 4586777..845f2fb 100644 --- a/babl/babl-db.c +++ b/babl/babl-db.c @@ -149,6 +149,23 @@ babl_db_each (BablDb *db, } } +static inline void +babl_db_each_inline (BablDb *db, + BablEachFunction each_fun, + void *user_data) +{ + int i; + + for (i = 0; i < db->count; i++) + { + if (db->items[i]) + { + if (each_fun ((Babl *) db->items[i], user_data)) + break; + } + } +} + typedef struct BablDbExistData { int id; @@ -196,7 +213,7 @@ babl_db_exist (BablDb *db, data.name = name; data.ret = NULL; - babl_db_each (db, babl_db_each_exist, &data); + babl_db_each_inline (db, babl_db_each_exist, &data); return data.ret; } -- 2.30.2